telnet无交互测试端口连通性 |
您所在的位置:网站首页 › escape character is怎么输入密码 › telnet无交互测试端口连通性 |
之所有要无交互,是因为需要批量测试大量主机的网络连通性。所以需将telnet写入脚本,并将其测试结果保存在文件中。所以,需要无交互式进行测试。 正常来说,telnet执行结果是这样的 $ telnet 192.168.119.166 21 Trying 192.168.119.166 ... Connected to 192.168.119.166 21. Escape character is '^]' >此时命令未退出。 根据提示Escape character is '^]'。 可知退出字符为’^]’ (CTRL+])。此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式: ^] telnet>此时再运行quit才会真正退出。 显然,这样是无法写入脚本的,所有需要让其输出结果后自行退出。有两种情景: 输出结果后立即退出 $ echo " " | telnet 192.168.119.166 21 Trying 192.168.119.166.... Connected to 192.168.119.166 Escape character is '^]'. Connection closed by foreign host.上述为网路通成功的返回结果。 网络不通的执行结果为: Trying 192.168.119.166... telnet: connect to address 192.168.119.166: Connection refused 输出结果后延迟退出 sleep 2使得telnet输出结果后,停留2秒后退出命令模式。 $ sleep 2 | telnet 192.168.119.166 21返回结果与上述一致。 使用这种方式可以将标准输出和标准错误重定向到文件中,通过分析文件的内容来判断端口打开状态。 所以,可以通过以下方式来判断telnet测试结果的连通性。 result=`echo "" | telnet $ip $port 2>/dev/null | grep "]" | wc -l` if [ $result -eq 1 ];then echo "$ip的$port端口已开启" else echo "$ip的$port端口未开启" fi--------------------------EOF------------------------------------- 题外话: telnet的Escape character可以自定义,使用参数-e: $ telnet -e p telnet 192.168.119.166 21 Telnet escape character is 'p'. Trying telnet 192.168.119.166 .. Connected to telnet 192.168.119.166 . Escape character is 'p'. p telnet> quit Connection closed. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |